﻿using System;
using Acaweb.Model.Entities.DatosCompuestos;

namespace Acaweb.Model.Entities
{
    public class HistorialCursos
    {
        private HistorialCursosPk _HistorialCursosPk;
        private Estudiantes _Estudiante;
        private Materias _Materia;
        private double _NotaDefinitiva;
        private int _CodigoMateriaEquivalente;
        private int _CodigoPlan;
        private int _SemetrePlan;
        private int _CodigoPensum;
        private int _Grupo;

        public virtual HistorialCursosPk HistorialCursosPk
        {
            get { return _HistorialCursosPk; }
            set { _HistorialCursosPk = value; }
        }

        public virtual Estudiantes Estudiante
        {
            get { return _Estudiante; }
            set { _Estudiante = value; }
        }

        public virtual double NotaDefinitiva
        {
            get { return _NotaDefinitiva; }
            set { _NotaDefinitiva = value; }
        }

        public virtual int CodigoMateriaEquivalente
        {
            get { return _CodigoMateriaEquivalente; }
            set { _CodigoMateriaEquivalente = value; }
        }

        public virtual int CodigoPlan
        {
            get { return _CodigoPlan; }
            set { _CodigoPlan = value; }
        }

        public virtual int SemetrePlan
        {
            get { return _SemetrePlan; }
            set { _SemetrePlan = value; }
        }

        public virtual int CodigoPensum
        {
            get { return _CodigoPensum; }
            set { _CodigoPensum = value; }
        }

        public virtual int Grupo
        {
            get { return _Grupo; }
            set { _Grupo = value; }
        }


        public Materias Materia
        {
            get { return _Materia; }
            set { _Materia = value; }
        }


        public CursosMatriculados ToCursoMatriculado()
        {
            CursosMatriculados CM = new CursosMatriculados();

            CM = new CursosMatriculados
            {
                CursoMatriculadoPk = new CursosMatriculadosPk
                {
                    Ano = this.HistorialCursosPk.Ano,
                    CodigoEstudiante = this.HistorialCursosPk.CodigoEstudiante,
                    CodigoMateria = this.HistorialCursosPk.CodigoMateria,
                    CodigoPlan = this.CodigoPlan,
                    Grupo = this.Grupo,
                    Periodo = this.HistorialCursosPk.Periodo,
                    Semestre = this.SemetrePlan
                },
                NotaDefinitiva = this.NotaDefinitiva,
                Curso = new Cursos
                {
                    Materia = this.Materia
                }
            };

            CM.Curso.CursoPk = CM.CursoMatriculadoPk.CursoPk;

            return CM;
        }
    }
}